clojure-emacs org にリポジトリ提供した話
あまりない経験なので clojure 色はあまり強くないですが簡単にまとめてみたいと思います。
uochan.icon2019/12/15 追記:
uochan.icon追記ここまで
経緯
Clojure を書いている人であれば Grimoire の存在を知っている人は多いかと思います。Clojure のドキュメントをまとめたサイトで、利用者が各関数の使用例などを登録できたので、具体的にどう使うのかを知りたい時に重宝していました。 とくに CIDER を利用している場合はエディタ上で Grimoire のドキュメントを参照できたので利用していた方も多いのではないでしょうか? JSON -> EDN
ClojureDocs は JSON でデータをエクスポートしていて、当初はそれを直接使った実装でした。
ただ orchard は基本的に外部ライブラリに依存しない方針であるため、JSONをパースするためのライブラリを dependencies に追加するのはいい顔をされませんでした。 なのでコアライブラリのみでパースできるので EDN 形式にしよう!という流れになったのですが、データの提供元である ClojureDocs 側は EDN 形式でのエクスポートをサポートする予定がないようで、それなら自分たちで用意すればいいんじゃね?ということで出来たのが以下の2つです。 clojure-emacs org に transfer 済み
やっていることは至極単純で、CircleCI の schedule を使って毎日 ClojureDocs から JSON データを引っ張ってきて、EDN 形式にして Netlify にデプロイしているだけです。
CIDER 0.22.0
その後データの微修正やら何やらを経て、CIDER 0.22.0 にて ClojureDocs サポートがついにリリースされました!
Another important addition to CIDER 0.22 is ClojureDocs support. This replaces completely the Grimoire support that existed in previous versions of CIDER.
ぱっと見、ClojureDocs を参照する時にしか使われてなさそうですが、関数のドキュメントを参照した際に表示される see also もこのデータを使って表示しているので、目にしたことがある方も少なくはないのでは?と思っています。
いやー良かった良かった。めでたしめでたし。崇め奉って。
となれば良かったのですが、少しずつ魔の手は忍び寄ってきていました。
100GB
発端は Netlify からのメールでした。
You’ve reached 50% of your current bandwidth allowance on Masashi Iizuka's team
50% とは?と思い Netlify の Plan details を見たところ 50GB の bandwidth を使い切ってました。
EDNファイルは現状1.5MBほどなので3万回以上ダウンロードされたということでしょうか。(1度ダウンロードするとリフレッシュするまでは1週間ローカルに保存したキャッシュを利用します)
無料プランなので 11/10-12/10 の 1 ヶ月間で上限が 100GB。メールを受け取ったのが 11/25 だったのでまぁ大丈夫かな?と思っていたところ
You’ve reached 75% of your current bandwidth allowance on Masashi Iizuka's team
追撃が4日後にきました。
4日で 25GB だと確実に間に合わないと思い急遽、Netlify のサイト毎 clojure-emacs 側で引き取ってくれないか?という打診をしてみました。
最後に
引き取りについては色よい返事がもらえ、github のリポジトリは移管して、Netlify のサイトは手続き中です。 手続きが終わって bbatsov 氏に確認中です。 「こんなのどう?」という一言からなかなかできない経験ができたのはラッキーだったなぁと思います。
また手続きの流れで clojure-emacs org のメンバーに入れてもらうことまでしてもらったので(それまでに小さなPRを出したりはしていましたが)、気を引き締め直して clojure-emacs へもっと貢献できたらなと思います。Vimmer ですが。